package cn.itsource.basic.service;

import cn.itsource.basic.domain.BaseDomain;
import cn.itsource.basic.query.BaseQuery;
import cn.itsource.basic.util.PageList;

import java.util.List;


/**
 * @Description:
 * @Author: ZHl
 * @Date: 2022-09-11 14:35
 */

public interface IBaseService<T extends BaseDomain,Q extends BaseQuery>{

    /**
     * 查找一个
     * @param id
     * @return 一个对象
     */
    T findOne(Long id);

    /**
     * 查找所有
     * @return list
     */
    List<T> findAll();

    /**
     * 新增
     * @param t
     */
    void save(T t);

    /**
     * 修改
     * @param t
     */
    void update(T t);

    /**
     * 删除
     * @param id
     */
    void delete(Long id);


    /**
     * 分页查询部门列表
     * @param q
     */
    PageList<T> pageList(Q q);


    /**
     * 批量删除
     * @param q
     */
    void deleteBatch(Q q);
}